﻿using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections;
using System.Collections.Generic;

namespace Utils
{
    public class Utilities
    {
        // 判断鼠标指针是否悬停在UI对象上的静态方法
        public static bool IsPointerOverUIObject()
        {
            // 创建当前指针位置的事件数据
            PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current);
            eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);

            // 存储所有射线投射结果的列表
            List<RaycastResult> results = new List<RaycastResult>();

            // 使用当前事件系统执行射线投射，获取所有射线投射的结果
            EventSystem.current.RaycastAll(eventDataCurrentPosition, results);

            // 返回是否存在射线投射结果，即鼠标指针是否悬停在UI对象上
            return results.Count > 0;
        }

    }
}
